package game.dungeon.position;

import be.kuleuven.cs.som.annotate.Basic;
import be.kuleuven.cs.som.annotate.Immutable;

/**
 * A class of coordinates with a value and a coordinate type.
 * 
 * @invar 	.. 
 * 		  | getCoordinateValue() >= 0 		
 * 
 * @version 1.0
 * @author Chris Desomer, Geert Heyman
 */
public class Coordinate {
	
	public Coordinate(int coordinate, CoordinateType coordinateType){
		this.coordinateType = coordinateType;
		this.coordinate = coordinate;
	}
	
	/**
	 * Return the coordinate value of this coordinate.
	 */
	@Immutable
	@Basic
	public int getCoordinateValue(){
		return coordinate;
	}
	
	/**
	 * Variable that stores the coordinate value of this coordinate.
	 */
	private final int coordinate;
	
	/**
	 * Return the coordinate type of this coordinate
	 */
	@Immutable
	@Basic
	public CoordinateType getCoordinateType(){
		return coordinateType;
	}
	
	/**
	 * Variable referencing the coordinate type
	 */
	private final CoordinateType coordinateType;
}
